package com.bw.controller;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.bw.service.GmallService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
public class GmallController {
    @Autowired
    GmallService gmallService;

    @RequestMapping("/findCat")
    public Object findCat(String time){
//        1.获取数据库中数据
        List<Map> list = gmallService.findCat(time);
        System.out.println(list);
//        2.返回大屏所需要的数据
        JSONObject jsonObject = new JSONObject();
//    jsonObject  需要 status msg  data
        jsonObject.put("status",0);
        jsonObject.put("msg","");
//        data  需要
        JSONObject dataObject = new JSONObject();
//        dataObject  需要categories  series
//        categories  需要[]  x轴
        JSONArray xArray = new JSONArray();
//        x轴 需要第二大类的名称  多 遍历list集合
        for (Map map : list) {
            xArray.add(map.get("name"));
        }
        dataObject.put("categories",xArray);
//        series  需要[]  y轴
        JSONArray yArray = new JSONArray();
//      y轴  需要 一个{}
        JSONObject yObject = new JSONObject();
//        yObject 需要 name data
        yObject.put("name","第二大类交易额");
//        data 需要[]
        JSONArray dataArray = new JSONArray();
//        dataArray 需要 交易额 多个遍历
        for (Map map : list) {
            dataArray.add(map.get("total"));
        }
        yObject.put("data",dataArray);
        yArray.add(yObject);
        dataObject.put("series",yArray);
        jsonObject.put("data",dataObject);
        return jsonObject;
    }

//    饼图
    @RequestMapping("/findAge")
    public Object  findAge(String time){
//        1.获取数据库中的数据
        List<Map> list = gmallService.findAge(time);
        System.out.println(list);
//        2.返回大屏所需要的数据
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
//      data 需要数组
        JSONArray jsonArray = new JSONArray();
//        jsonArray 数组 需要多个对象 list遍历
        for (Map map : list) {
            JSONObject dataObject = new JSONObject();
            dataObject.put("name",map.get("groupAge"));
            dataObject.put("value",map.get("zb"));
            jsonArray.add(dataObject);
        }
        jsonObject.put("data",jsonArray);
        return jsonObject;

    }
//  省份热力图
    @RequestMapping("/findPro")
    public Object findPro(String time){
        List<Map> list = gmallService.findPro(time);
        System.out.println(list);

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
//        data 需要{}
        JSONObject dataObject = new JSONObject();
//        dataObject  需要 mapData valueName
//      mapData 需要[]
        JSONArray mapArray = new JSONArray();
//        mapArray 需要 多个对象  list遍历
        for (Map map : list) {
            JSONObject Object = new JSONObject();
            Object.put("name",map.get("n"));
            Object.put("value",map.get("total"));
            mapArray.add(Object);
        }
        dataObject.put("mapData",mapArray);
        dataObject.put("valueName","总成交额");
        jsonObject.put("data",dataObject);
        return jsonObject;
    }
//    轮播图表格
    @RequestMapping("/findTra")
    public  Object findTra(String time){
        List<Map> list = gmallService.findTra(time);
        System.out.println(list);

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONObject dataObject = new JSONObject();
//        columns 表示表头
        JSONArray colArray = new JSONArray();

        JSONObject colObject1 = new JSONObject();
        colObject1.put("name","品牌");
        colObject1.put("id","s");
        colArray.add(colObject1);

        JSONObject colObject2 = new JSONObject();
        colObject2.put("name","性别");
        colObject2.put("id","m");
        colArray.add(colObject2);

        JSONObject colObject3 = new JSONObject();
        colObject3.put("name","总金额");
        colObject3.put("id","t");
        colArray.add(colObject3);

        dataObject.put("columns",colArray);

//      rows 表示行
        JSONArray rowArray = new JSONArray();
        for (Map map : list) {
            JSONObject rowObject = new JSONObject();
            rowObject.put("s",map.get("n"));
            rowObject.put("m",map.get("sex"));
            rowObject.put("t",map.get("total"));
            rowArray.add(rowObject);

        }
        dataObject.put("rows",rowArray);
        jsonObject.put("data",dataObject);
        return jsonObject;
    }

}
